package m_api

// 全局通用错误
const (
	CodeParamInvalid          = 1000 // 通用的参数不合法
	CodeJsonUnmarshalFail     = 1001 // 反序列化JSON失败
	CodeParamTypeInvalid      = 1002 // 数据类型错误（整形变字符串等）
	CodeParamFormatInvalid    = 1003 // 数据格式错误 （ip地址格式错误等）
	CodeKeyParamMissing       = 1004 // 缺少关键参数
	CodeKeyParamDuplicate     = 1005 // 重复的关键字参数
	CodeOutOfRangeError       = 1006 // 超出范围（整形/浮点型/字符串都可以用）
	CodeJsonMarshalFail       = 1007 // 序列化失败
	CodeOperationNotPermitted = 1100 // 操作不允许
	CodeNoSuchPath            = 1101 // 文件、目录不存在
	CodeNoSuchDeviceOrAddress = 1102 // 设备或者内存地址不存在
	CodeOutOfMemory           = 1103 // 内存不足
	CodeResourceBusy          = 1104 // 设备或者资源忙
	CodeFileExists            = 1105 // 文件已存在
	CodeFileTooLarge          = 1106 // 文件过大
	CodeDeviceNoSpace         = 1107 // 设备无剩余空间
	CodeFileOperationFail     = 1108 // 文件操作（包括读写）失败
	CodeFileNameTooLong       = 1109 // 文件名过长
	CodeServerInternalError   = 1118 // 服务器内部未知错误（panic时使用）

	CodeDbOperationFail     = 2000 // 数据库增删改查错误
	CodeDbNotExists         = 2001 // 数据库不存在
	CodeDbTableNotExists    = 2002 // 数据表不存在
	CodeDbAccessDenied      = 2003 // 访问拒绝
	CodeSendHttpRequestFail = 3001 // 发送http请求通用错误
)

var statusMaps = make(map[int]string)

func init() {
	statusMaps[CodeParamInvalid] = "通用的参数不合法"
	statusMaps[CodeJsonUnmarshalFail] = "反序列化JSON失败"
	statusMaps[CodeParamTypeInvalid] = "数据类型错误（整形变字符串等）"
	statusMaps[CodeParamFormatInvalid] = "数据格式错误 （ip地址格式错误等）"
	statusMaps[CodeKeyParamMissing] = "缺少关键参数"
	statusMaps[CodeKeyParamDuplicate] = "重复的关键字参数"
	statusMaps[CodeOutOfRangeError] = "超出范围（整形/浮点型/字符串都可以用）"
	statusMaps[CodeJsonMarshalFail] = "序列化失败"
	statusMaps[CodeOperationNotPermitted] = "操作不允许"
	statusMaps[CodeNoSuchPath] = "文件、目录不存在"
	statusMaps[CodeNoSuchDeviceOrAddress] = "设备或者内存地址不存在"
	statusMaps[CodeOutOfMemory] = "内存不足"
	statusMaps[CodeResourceBusy] = "设备或者资源忙"
	statusMaps[CodeFileExists] = "文件已存在"
	statusMaps[CodeFileTooLarge] = "文件过大"
	statusMaps[CodeDeviceNoSpace] = "设备无剩余空间"
	statusMaps[CodeFileOperationFail] = "文件操作（包括读写）失败"
	statusMaps[CodeFileNameTooLong] = "文件名过长"
	statusMaps[CodeServerInternalError] = "服务器内部未知错误（panic时使用）"
	statusMaps[CodeDbOperationFail] = "数据库增删改查错误"
	statusMaps[CodeDbNotExists] = "数据库不存在"
	statusMaps[CodeDbTableNotExists] = "数据表不存在"
	statusMaps[CodeDbAccessDenied] = "访问拒绝"
	statusMaps[CodeSendHttpRequestFail] = "发送http请求通用错误"
}

func StatusMaps(key int) string {
	return statusMaps[key]
}
